[IA64]: update ia64 px info transfer corresponding to x86 px info update.
authorIsaku Yamahata <yamahata@valinux.co.jp>
Wed, 22 Oct 2008 03:41:52 +0000 (12:41 +0900)
committerIsaku Yamahata <yamahata@valinux.co.jp>
Wed, 22 Oct 2008 03:41:52 +0000 (12:41 +0900)
update ia64 px info transfer corresponding to x86 px info update.

Signed-off-by: Liu Jinsong <jinsong.liu@intel.com>
xen/arch/ia64/xen/platform_hypercall.c

index 69c6bd5af8184b7193552478b0c5c22c6118465a..81acf4f6c3b2e726cecddd5d971e64acd4d4cd3d 100644 (file)
@@ -10,6 +10,7 @@
 #include <xen/types.h>
 #include <xen/lib.h>
 #include <xen/sched.h>
+#include <xen/domain.h>
 #include <xen/guest_access.h>
 #include <xen/acpi.h>
 #include <public/platform.h>
@@ -20,15 +21,6 @@ DEFINE_SPINLOCK(xenpf_lock);
 extern int set_px_pminfo(uint32_t cpu, struct xen_processor_performance *perf);
 extern long set_cx_pminfo(uint32_t cpu, struct xen_processor_power *power);
 
-int xenpf_copy_px_states(struct processor_performance *pxpt,
-        struct xen_processor_performance *dom0_px_info)
-{
-    if (!pxpt || !dom0_px_info)
-        return -EINVAL;
-    return  copy_from_guest(pxpt->states, dom0_px_info->states,
-                    dom0_px_info->state_count);
-}
-
 long do_platform_op(XEN_GUEST_HANDLE(xen_platform_op_t) u_xenpf_op)
 {
     long ret = 0;
@@ -50,6 +42,11 @@ long do_platform_op(XEN_GUEST_HANDLE(xen_platform_op_t) u_xenpf_op)
         switch ( op->u.set_pminfo.type )
         {
         case XEN_PM_PX:
+            if ( !(xen_processor_pmbits & XEN_PROCESSOR_PM_PX) )
+            {
+                ret = -ENOSYS;
+                break;
+            }
             ret = set_px_pminfo(op->u.set_pminfo.id,
                     &op->u.set_pminfo.perf);
             break;